home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 1 / ETO Development Tools 1.iso / Essentials / C++ AppleLink Messages / CPlus.Dev$ 2⁄9⁄90 / 0048-Static Link-Feb90 next >
Text File  |  1990-02-09  |  1KB  |  34 lines

  1. Item    6748513                         6-Feb-90        10:15PST
  2.  
  3. From:   MACDOUGALD1                     MacDougald, Joe
  4.  
  5. To:     CPLUS.APPLE$                    C++ Interest List--Apple Employees
  6.  
  7. cc:     CPLUS.DEV$                      C++ Interest List--Developers
  8.  
  9. Sub:    Static Link
  10.  
  11.  
  12. To:     CPLUS.APPLE$                    C++ Interest List--Apple Employees
  13.         CPLUS.DEV$
  14.  
  15. From:   MacDougald1
  16.  
  17. Re:     StaticLink
  18.  
  19.  
  20. The static_link field in C++ code is there to provide for "up-level" variable
  21. access a la A6 links for nested procedures in Pascal.  If you pass a NIL for
  22. that parameter the CallDoToFields glue (shown in Keith Rollins previous link on
  23. this subject) will optimize the static link out and your stack frames will be
  24. different sizes in the Pascal and C/C++ worlds (not good).
  25.  
  26. If you do not need to access data in the calling routine, declare:
  27.  
  28.     const void* const kNoStaticLink = (void*)-1;
  29.  
  30.     // constant pointer to constant data, BTW
  31.  
  32. and pass kNoStaticLink as the parameter.
  33.  
  34.